{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 14: Create some array and dictionary to create Pandas series"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Labels: ['a', 'b', 'c']\n",
      "My data: [10, 20, 30]\n",
      "Dictionary: {'a': 10, 'b': 20, 'c': 30}\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "labels = ['a','b','c']\n",
    "my_data = [10,20,30]\n",
    "arr = np.array(my_data)\n",
    "d = {'a':10,'b':20,'c':30}\n",
    "\n",
    "print (\"Labels:\", labels)\n",
    "print(\"My data:\", my_data)\n",
    "print(\"Dictionary:\", d)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 15: Creating a Pandas Series"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    10\n",
      "1    20\n",
      "2    30\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "s1=pd.Series(data=my_data)\n",
    "print(s1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a    10\n",
      "b    20\n",
      "c    30\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "s2=pd.Series(data=my_data, index=labels)\n",
    "print(s2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a    10\n",
      "b    20\n",
      "c    30\n",
      "dtype: int32\n"
     ]
    }
   ],
   "source": [
    "s3=pd.Series(arr, labels)\n",
    "print(s3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a    10\n",
      "b    20\n",
      "c    30\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "s4=pd.Series(d)\n",
    "print(s4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 16: Pandas series can hold many types of data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Holding numerical data\n",
      "-------------------------\n",
      "0    10\n",
      "1    20\n",
      "2    30\n",
      "dtype: int32\n",
      "\n",
      "Holding text labels\n",
      "--------------------\n",
      "0    a\n",
      "1    b\n",
      "2    c\n",
      "dtype: object\n",
      "\n",
      "Holding functions\n",
      "--------------------\n",
      "0      <built-in function sum>\n",
      "1    <built-in function print>\n",
      "2      <built-in function len>\n",
      "dtype: object\n",
      "\n",
      "Holding objects from a dictionary\n",
      "----------------------------------------\n",
      "0    <built-in method keys of dict object at 0x0000...\n",
      "1    <built-in method items of dict object at 0x000...\n",
      "2    <built-in method values of dict object at 0x00...\n",
      "dtype: object\n"
     ]
    }
   ],
   "source": [
    "print (\"\\nHolding numerical data\\n\",'-'*25, sep='')\n",
    "print(pd.Series(arr))\n",
    "print (\"\\nHolding text labels\\n\",'-'*20, sep='')\n",
    "print(pd.Series(labels))\n",
    "print (\"\\nHolding functions\\n\",'-'*20, sep='')\n",
    "print(pd.Series(data=[sum,print,len]))\n",
    "print (\"\\nHolding objects from a dictionary\\n\",'-'*40, sep='')\n",
    "print(pd.Series(data=[d.keys, d.items, d.values]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 17: Creating Pandas DataFrame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "The data frame looks like\n",
      "---------------------------------------------\n",
      "   W  X  Y  Z\n",
      "A  4  9  4  2\n",
      "B  9  8  9  5\n",
      "C  9  1  9  7\n",
      "D  3  2  5  2\n",
      "E  1  2  6  2\n"
     ]
    }
   ],
   "source": [
    "matrix_data = np.random.randint(1,10,size=20).reshape(5,4)\n",
    "row_labels = ['A','B','C','D','E']\n",
    "column_headings = ['W','X','Y','Z']\n",
    "\n",
    "df = pd.DataFrame(data=matrix_data, index=row_labels, columns=column_headings)\n",
    "print(\"\\nThe data frame looks like\\n\",'-'*45, sep='')\n",
    "print(df) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    a   b   c\n",
      "X  10  30  50\n",
      "Y  20  40  60\n"
     ]
    }
   ],
   "source": [
    "d={'a':[10,20],'b':[30,40],'c':[50,60]}\n",
    "df2=pd.DataFrame(data=d,index=['X','Y'])\n",
    "print(df2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 18: Viewing a DataFrame partially"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 25 rows and 4 columns\n",
    "matrix_data = np.random.randint(1,100,100).reshape(25,4)\n",
    "column_headings = ['W','X','Y','Z']\n",
    "df = pd.DataFrame(data=matrix_data,columns=column_headings)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>W</th>\n",
       "      <th>X</th>\n",
       "      <th>Y</th>\n",
       "      <th>Z</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>15</td>\n",
       "      <td>60</td>\n",
       "      <td>51</td>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>48</td>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>39</td>\n",
       "      <td>13</td>\n",
       "      <td>8</td>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>90</td>\n",
       "      <td>33</td>\n",
       "      <td>52</td>\n",
       "      <td>61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>70</td>\n",
       "      <td>6</td>\n",
       "      <td>33</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    W   X   Y   Z\n",
       "0  15  60  51  53\n",
       "1   3  48   8   9\n",
       "2  39  13   8  53\n",
       "3  90  33  52  61\n",
       "4  70   6  33  40"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>W</th>\n",
       "      <th>X</th>\n",
       "      <th>Y</th>\n",
       "      <th>Z</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>15</td>\n",
       "      <td>60</td>\n",
       "      <td>51</td>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>48</td>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>39</td>\n",
       "      <td>13</td>\n",
       "      <td>8</td>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>90</td>\n",
       "      <td>33</td>\n",
       "      <td>52</td>\n",
       "      <td>61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>70</td>\n",
       "      <td>6</td>\n",
       "      <td>33</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>56</td>\n",
       "      <td>49</td>\n",
       "      <td>78</td>\n",
       "      <td>74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>92</td>\n",
       "      <td>43</td>\n",
       "      <td>88</td>\n",
       "      <td>41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>31</td>\n",
       "      <td>48</td>\n",
       "      <td>82</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>71</td>\n",
       "      <td>4</td>\n",
       "      <td>36</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>10</td>\n",
       "      <td>9</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    W   X   Y   Z\n",
       "0  15  60  51  53\n",
       "1   3  48   8   9\n",
       "2  39  13   8  53\n",
       "3  90  33  52  61\n",
       "4  70   6  33  40\n",
       "5  56  49  78  74\n",
       "6  92  43  88  41\n",
       "7  31  48  82  22\n",
       "8  71   4  36   5\n",
       "9  10   9   3   4"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>W</th>\n",
       "      <th>X</th>\n",
       "      <th>Y</th>\n",
       "      <th>Z</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>72</td>\n",
       "      <td>26</td>\n",
       "      <td>30</td>\n",
       "      <td>74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>95</td>\n",
       "      <td>3</td>\n",
       "      <td>67</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>25</td>\n",
       "      <td>63</td>\n",
       "      <td>74</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>14</td>\n",
       "      <td>11</td>\n",
       "      <td>86</td>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>77</td>\n",
       "      <td>86</td>\n",
       "      <td>97</td>\n",
       "      <td>90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>73</td>\n",
       "      <td>16</td>\n",
       "      <td>69</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>38</td>\n",
       "      <td>88</td>\n",
       "      <td>14</td>\n",
       "      <td>72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>71</td>\n",
       "      <td>17</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     W   X   Y   Z\n",
       "17  72  26  30  74\n",
       "18  95   3  67  12\n",
       "19  25  63  74  21\n",
       "20  14  11  86  38\n",
       "21  77  86  97  90\n",
       "22  73  16  69   6\n",
       "23  38  88  14  72\n",
       "24  71  17  33   1"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.tail(8)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 19: Indexing and slicing (columns)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "The 'X' column\n",
      "-------------------------\n",
      "0     60\n",
      "1     48\n",
      "2     13\n",
      "3     33\n",
      "4      6\n",
      "5     49\n",
      "6     43\n",
      "7     48\n",
      "8      4\n",
      "9      9\n",
      "10     6\n",
      "11    74\n",
      "12     6\n",
      "13    12\n",
      "14    99\n",
      "15    38\n",
      "16    18\n",
      "17    26\n",
      "18     3\n",
      "19    63\n",
      "20    11\n",
      "21    86\n",
      "22    16\n",
      "23    88\n",
      "24    17\n",
      "Name: X, dtype: int32\n",
      "\n",
      "Type of the column: <class 'pandas.core.series.Series'>\n",
      "\n",
      "The 'X' and 'Z' columns indexed by passing a list\n",
      "-------------------------------------------------------\n",
      "     X   Z\n",
      "0   60  53\n",
      "1   48   9\n",
      "2   13  53\n",
      "3   33  61\n",
      "4    6  40\n",
      "5   49  74\n",
      "6   43  41\n",
      "7   48  22\n",
      "8    4   5\n",
      "9    9   4\n",
      "10   6  24\n",
      "11  74  56\n",
      "12   6   8\n",
      "13  12  14\n",
      "14  99  64\n",
      "15  38  73\n",
      "16  18  65\n",
      "17  26  74\n",
      "18   3  12\n",
      "19  63  21\n",
      "20  11  38\n",
      "21  86  90\n",
      "22  16   6\n",
      "23  88  72\n",
      "24  17   1\n",
      "\n",
      "Type of the pair of columns: <class 'pandas.core.frame.DataFrame'>\n"
     ]
    }
   ],
   "source": [
    "print(\"\\nThe 'X' column\\n\",'-'*25, sep='')\n",
    "print(df['X'])\n",
    "print(\"\\nType of the column: \", type(df['X']), sep='')\n",
    "print(\"\\nThe 'X' and 'Z' columns indexed by passing a list\\n\",'-'*55, sep='')\n",
    "print(df[['X','Z']])\n",
    "print(\"\\nType of the pair of columns: \", type(df[['X','Z']]), sep='')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 20: Indexing and slicing (rows)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Label-based 'loc' method can be used for selecting row(s)\n",
      "------------------------------------------------------------\n",
      "\n",
      "Single row\n",
      "\n",
      "W    9\n",
      "X    2\n",
      "Y    3\n",
      "Z    6\n",
      "Name: C, dtype: int32\n",
      "\n",
      "Multiple rows\n",
      "\n",
      "   W  X  Y  Z\n",
      "B  4  2  2  3\n",
      "C  9  2  3  6\n",
      "\n",
      "Index position based 'iloc' method can be used for selecting row(s)\n",
      "----------------------------------------------------------------------\n",
      "\n",
      "Single row\n",
      "\n",
      "W    9\n",
      "X    2\n",
      "Y    3\n",
      "Z    6\n",
      "Name: C, dtype: int32\n",
      "\n",
      "Multiple rows\n",
      "\n",
      "   W  X  Y  Z\n",
      "B  4  2  2  3\n",
      "C  9  2  3  6\n"
     ]
    }
   ],
   "source": [
    "matrix_data = np.random.randint(1,10,size=20).reshape(5,4)\n",
    "row_labels = ['A','B','C','D','E']\n",
    "column_headings = ['W','X','Y','Z']\n",
    "\n",
    "df = pd.DataFrame(data=matrix_data, index=row_labels, columns=column_headings)\n",
    "print(\"\\nLabel-based 'loc' method can be used for selecting row(s)\\n\",'-'*60, sep='')\n",
    "print(\"\\nSingle row\\n\")\n",
    "print(df.loc['C'])\n",
    "print(\"\\nMultiple rows\\n\")\n",
    "print(df.loc[['B','C']])\n",
    "print(\"\\nIndex position based 'iloc' method can be used for selecting row(s)\\n\",'-'*70, sep='')\n",
    "print(\"\\nSingle row\\n\")\n",
    "print(df.iloc[2])\n",
    "print(\"\\nMultiple rows\\n\")\n",
    "print(df.iloc[[1,2]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 21: Creating and deleting a (new) column (or row)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "A column is created by assigning it in relation to an existing column\n",
      "---------------------------------------------------------------------------\n",
      "   W  X  Y  Z  New  New (Sum of X and Z)\n",
      "A  2  1  7  1    2                     2\n",
      "B  4  2  2  3    5                     5\n",
      "C  9  2  3  6    8                     8\n",
      "D  5  5  2  5   10                    10\n",
      "E  7  8  4  9   17                    17\n",
      "\n",
      "A column is dropped by using df.drop() method\n",
      "-------------------------------------------------------\n",
      "   W  X  Y  Z  New (Sum of X and Z)\n",
      "A  2  1  7  1                     2\n",
      "B  4  2  2  3                     5\n",
      "C  9  2  3  6                     8\n",
      "D  5  5  2  5                    10\n",
      "E  7  8  4  9                    17\n",
      "\n",
      "A row (index) is dropped by using df.drop() method and axis=0\n",
      "-----------------------------------------------------------------\n",
      "   W  X  Y  Z  New (Sum of X and Z)\n",
      "B  4  2  2  3                     5\n",
      "C  9  2  3  6                     8\n",
      "D  5  5  2  5                    10\n",
      "E  7  8  4  9                    17\n",
      "\n",
      "An in-place change can be done by making inplace=True in the drop method\n",
      "---------------------------------------------------------------------------\n",
      "   W  X  Y  Z\n",
      "A  2  1  7  1\n",
      "B  4  2  2  3\n",
      "C  9  2  3  6\n",
      "D  5  5  2  5\n",
      "E  7  8  4  9\n"
     ]
    }
   ],
   "source": [
    "print(\"\\nA column is created by assigning it in relation to an existing column\\n\",'-'*75, sep='')\n",
    "df['New'] = df['X']+df['Z']\n",
    "df['New (Sum of X and Z)'] = df['X']+df['Z']\n",
    "print(df)\n",
    "print(\"\\nA column is dropped by using df.drop() method\\n\",'-'*55, sep='')\n",
    "df = df.drop('New', axis=1) # Notice the axis=1 option, axis = 0 is default, so one has to change it to 1\n",
    "print(df)\n",
    "df1=df.drop('A')\n",
    "print(\"\\nA row (index) is dropped by using df.drop() method and axis=0\\n\",'-'*65, sep='')\n",
    "print(df1)\n",
    "print(\"\\nAn in-place change can be done by making inplace=True in the drop method\\n\",'-'*75, sep='')\n",
    "df.drop('New (Sum of X and Z)', axis=1, inplace=True)\n",
    "print(df)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  },
  "latex_envs": {
   "LaTeX_envs_menu_present": true,
   "autoclose": false,
   "autocomplete": true,
   "bibliofile": "biblio.bib",
   "cite_by": "apalike",
   "current_citInitial": 1,
   "eqLabelWithNumbers": true,
   "eqNumInitial": 1,
   "hotkeys": {
    "equation": "Ctrl-E",
    "itemize": "Ctrl-I"
   },
   "labels_anchors": false,
   "latex_user_defs": false,
   "report_style_numbering": false,
   "user_envs_cfg": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
